Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Створення власних класів та об’єктів

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2011
Тип роботи:
Лабораторна робота
Предмет:
Об’єктно-орієнтоване програмування

Частина тексту файла

Міністерство освіти науки молоді та спорту Національний університет «Львівська політехніка» Лабораторна робота № 4 З Основ об’єктно-орієнтованого програмування На тему Створення власних класів та об’єктів Мета: засвоїти основні поняття об’єктно-орієнтованого програмування, навчитися створювати свої об’єкти і будувати програми, засновані на об’єктному підході. Завдання: Описати клас для векторів, що задаються координатами кінців у тривимірному просторі. Забезпечити операції додавання та віднімання векторів з одержанням нового вектора (суми чи різниці), обчислення скалярного добутку двох векторів, довжини вектора, косинуса кута між векторами. Код програми: unit MyVec; interface uses classes, Sysutils, Math; type TVector = class (TObject) private public Fx:Integer; Fy:Integer; Fz:Integer; constructor Create; function AbsVec():Extended; procedure Sum(V1:TVector); procedure Diff(V1:TVector); function Scal(V1:TVector):Int64; function Len(V1:TVector):Extended; function Ang(V1:TVector):Extended; end; implementation constructor TVector.Create; begin Fx:=0; Fy:=0; Fz:=0; end; function TVector.AbsVec():Extended; begin Result:=Sqrt(Fx*Fx+Fy*Fy+Fz*Fz); end; procedure TVector.Sum(V1:TVector); begin Fx:=V1.Fx+Fx; Fy:=V1.Fy+Fy; Fz:=V1.Fz+Fz; end; procedure TVector.Diff(V1:TVector); begin Fx:=Fx-V1.Fx; Fy:=Fy-V1.Fy; Fz:=Fz-V1.Fz; end; function TVector.Scal(V1:TVector):int64; begin Result:=(Fx*V1.Fx+Fy*V1.Fy+Fz*V1.Fz); end; function TVector.Len(V1:TVector):Extended; begin Result:=Sqrt(Sqr(Fx-V1.Fx)+Sqr(Fy-V1.Fy)+Sqr(Fz-V1.fz)); end; function TVector.Ang(V1:TVector):Extended; begin Result:=(Fx*V1.Fx+Fy*V1.Fy+Fz*V1.Fz)/ (Sqrt(Sqr(Fx)+Sqr(Fy)+Sqr(Fz))* Sqrt(Sqr(V1.Fx)+Sqr(V1.Fy)+Sqr(V1.Fz))); end; end. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, MyVec; type TForm1 = class(TForm) lbl1: TLabel; lbl2: TLabel; lbl3: TLabel; edt1: TEdit; edt2: TEdit; lbl4: TLabel; lbl5: TLabel; lbl6: TLabel; edt3: TEdit; edt4: TEdit; lbl7: TLabel; lbl8: TLabel; edt5: TEdit; edt6: TEdit; lbl9: TLabel; edt7: TEdit; btn1: TButton; btn2: TButton; btn3: TButton; btn4: TButton; btn5: TButton; lbl10: TLabel; lbl11: TLabel; lbl12: TLabel; lbl13: TLabel; edt8: TEdit; edt9: TEdit; edt10: TEdit; //procedure FormCreate(Sender: TObject); procedure btn1Click(Sender: TObject); procedure btn2Click(Sender: TObject); procedure btn3Click(Sender: TObject); procedure btn5Click(Sender: TObject); procedure btn4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} { procedure TForm1.btn1Click(Sender: TObject); var V1,V2:TVector; begin V1:= TVector.Create; V2:= TVector.Create; V1.Fx:=StrToInt(edt1.Text); V1.Fy:=StrToInt(edt2.Text); V1.Fz:=StrToInt(edt5.Text); V2.Fx:=StrToInt(edt3.Text); V2.Fy:=StrToInt(edt4.Text); V2.Fz:=StrToInt(edt6.Text); edt7.Text:=IntToStr(0); V1.Sum(V2); edt8.Text:=IntToStr(V1.Fx); edt9.Text:=IntToStr(V1.Fy); edt10.Text:=IntToStr(V1.Fz); end; procedure TForm1.btn2Click(Sender: TObject); var V1,V2:TVector; begin V1:= TVector.Create; V2:= TVector.Create; V1.Fx:=StrToInt(edt1.Text); V1.Fy:=StrToInt(edt2.Text); V1.Fz:=StrToInt(edt5.Text); V2.Fx:=StrToInt(edt3.Text); V2.Fy:=StrToInt(edt4.Text); V2.Fz:=StrToInt(edt6.Text); edt7.Text:=IntToStr(0); V1.Diff(V2); edt8.Text:=IntToStr(V1.Fx); edt9.Text:=IntToStr(V1.Fy); edt10.Text:=IntToStr(V1.Fz); end; procedure TForm1.btn3Click(Sender: TObject); var V1,...
Антиботан аватар за замовчуванням

20.02.2013 19:02

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини